1. Field of the Invention
The invention relates generally to a content management system. More particularly, it relates to systems and methods for locating an available resource manager in which to store an object in a content management system.
2. Description of the Related Art
A content management system is a computer-based infrastructure for managing the full spectrum of digital information. Large collections of scanned images, facsimiles, electronic office documents, XML and HTML files, computer output, audio, video, multimedia, and virtual reality content can be stored and accessed through the content management system. The content management system integrates content with line of business, customer service, enterprise resource planning (ERP), digital asset management, distance learning, World-Wide Web (“Web”) content management or other applications to accelerate benefits across the enterprise.
One instance of such a content manager system can be visualized as a triangle, its three vertices being the client, a library server and an object server (resource manager). The client includes an application programming interface (API) that provides an interface for a user's application program with the content management system. Through the client API the user's application program can store, search for, and mark-up documents or other objects in the content management system. The library server is the equivalent of a card catalog which holds information about the objects, including their location. The object server (OS), also referred to as a resource manager (RM), is where either the actual object or a pointer to the actual object is stored.
The core library server logic (except for system utilities and housekeeping tasks) is packaged as a set of relational data base (RDB) stored procedures (SPs) containing embedded SQL statements. Each stored procedure is precompiled and runs on a relational database server. Thus, each library server process is a relational database server process. The interface to a library server is SQL, through which either stored procedures can be called or SQL SELECT statements (including cursor support) can be executed. Remote access to the library server is via a relational database client.
The resource managers can support different/multiple access protocols. For example, the resource manager, or object server, supports the HTTP protocol. The basic information entities managed by the library server are items. Items come in two types, simple items and resource items. Resource items can have content associated with them that is stored in one or more resource managers. Resource items point to their content via resource uniform resource locator (URL) related data.
The library server and resource manager are separate processes, often running on different machines. In operation, a client application program first contacts the library server to create or update an index for an object, and to determine where the object is to be stored/replaced. The client then sends a request to the resource manager to store or replace the object.
Although content management systems are used to store a copy of an object in a resource manager, often it is desired that multiple replicas of an object on different resource managers be resident within the system. Replication provides for reliability in a variety of ways. For example, it can be utilized as part of a comprehensive data security model to provide offsite storage. In addition, replicated items lost due to a hardware, software or administrative error can be recovered by a utility if a copy exists. It also provides for availability of objects. For business, legal or regulatory reasons (depending on locale) objects (possibly legal documents) may be required to reside on certain classes of media, such as optical media.
The performance characteristics of this media may conflict with the desired access rate for a given customer. Replication to a faster media can enable keeping a copy on the legal storage medium and a copy on fast access medium over a longer defined period than normal caching practices permit. Replication also provides backup redundancy, the ability to maintain a copy at two or more sites. Higher availability of objects is also achieved via multiple peer copies.
Such content management system replication features are described in U.S. patent application Ser. No. 10/011,181, filed on Nov. 9, 2001, which is incorporated by reference herein. With these replication features comes the capability to specify a primary resource manager (RM), and one or more replica resource managers. When an object is stored to the primary RM, a list of replica RMs is also sent to the primary RM. An asynchronous process is then used to copy the content to any replica RMs. If the primary is not available as detected by a timeout error, the content and list of RMs is sent to the first available replica RM. Again, an asynchronous process is used to copy the object to the primary RM and to any other replica RMs.
In these prior content management systems, each copy request had to wait for a timeout period, which could take minutes, and in certain circumstances can impact the productivity of users. Accordingly, there is a need to support replication in a content management system without requiring a user to wait for a timeout period to expire before storing or retrieving an item in or from a replica resource manager.